package org.johnnei.engine;

public interface IGame {
	
	/**
	 * Initialise All resources<br/>
	 * OpenGL/OpenAL calls are valid in this function
	 */
	public void init();
	
	/**
	 * Execute all updates
	 * @param deltaMs The miliseconds which have passed since the last update
	 */
	public void onTick(int deltaMs);
	
	/**
	 * Render all information
	 */
	public void render();
	
	/**
	 * Cleanup all resources used
	 */
	public void cleanup();
	
	/**
	 * Get the game title
	 * @return The game title
	 */
	public String getTitle();
	
	/**
	 * If a close request is made from within the game
	 * @return if the user wants to close
	 */
	public boolean isCloseRequested();

}
